/*
UTF8占位
lib - tagWND.js

function ( __MODULE__ , exports  , require , __FILE__  )
*/

// Role Check
var base = require("base");
if ( !base.FlagOn( base.GetRole() ,  base.JSRT_WINDBG ) )
{
	base.printf('[-] Not In Windbg Mode!\n');
	return 0;
}

var win32 = require("windows");
var windbg = require("windbg");

var assert = base.assert;
var isArray = base.isArray;
var isString = base.isString;
var isFunction = base.isFunction;
var isNumber = base.isNumber;
var isObject = base.isObject;
var isNull = base.isNull;
var isNullOrUndefined = base.isNullOrUndefined;
var isUndefined = base.isUndefined;
var isPointer = base.isPointer;
var Pointer = base.Pointer;
var LargeInteger2Pointer = base.LargeInteger2Pointer;

var isx64 = base.isx64;
var FlagOn = base.FlagOn;
var POINTER_SIZE = base.POINTER_SIZE;


var printf = base.printf;
var KdPrint = base.KdPrint;
var sprintf = base.sprintf;

var setchar = base.setchar;
var setuchar = base.setuchar;
var setushort = base.setushort;
var setint = base.setint;
var setuint = base.setuint;
var setlong = base.setlong;
var setulong = base.setulong;
var setpointer = base.setpointer;
var setstring = base.setstring;

var getchar = base.getchar;
var getuchar = base.getuchar;
var getushort = base.getushort;
var getint = base.getint;
var getuint = base.getuint;
var getlong = base.getlong;
var getulong = base.getulong;
var getpointer = base.getpointer;
var getstring = base.getstring;

var cast2Boolean = base.cast2Boolean;
var cast2CHAR = base.cast2CHAR;
var cast2UCHAR = base.cast2UCHAR;
var cast2SHORT = base.cast2SHORT;
var cast2USHORT = base.cast2USHORT;
var cast2INT = base.cast2INT;
var cast2UINT = base.cast2UINT;
var cast2LONG = base.cast2LONG;
var cast2ULONG = base.cast2ULONG;

// ------------------------------------------------------

// win32

const OS_UNKNOWN = win32.OS_UNKNOWN;

const OS_XP_SP0 = win32.OS_XP_SP0;		// 5.1	
const OS_XP_SP1 = win32.OS_XP_SP1;
const OS_XP_SP2 = win32.OS_XP_SP2;
const OS_XP_SP3 = win32.OS_XP_SP3;

const OS_2003_SP0 = win32.OS_2003_SP0;	// 5.2
const OS_2003_SP1 = win32.OS_2003_SP1;
const OS_2003_SP2 = win32.OS_2003_SP2;

const OS_VISTA_SP0 = win32.OS_VISTA_SP0;	// 6.0
const OS_VISTA_SP1 = win32.OS_VISTA_SP1;
const OS_VISTA_SP2 = win32.OS_VISTA_SP2;

const OS_2008_SP1 = win32.OS_2008_SP1;
const OS_2008_SP2 = win32.OS_2008_SP2;

const OS_2008_R2_SP0 = win32.OS_2008_R2_SP0; // 6.1
const OS_2008_R2_SP1 = win32.OS_2008_R2_SP1; 

const OS_7_SP0 = win32.OS_7_SP0;
const OS_7_SP1 = win32.OS_7_SP1;

const OS_2012 = win32.OS_2012;	// 6.2
const OS_8 = win32.OS_8;

const OS_2012_R2 = win32.OS_2012_R2;	 // 6.3
const OS_8DOT1 = win32.OS_8DOT1;

const OS_2016 = win32.OS_2016;	// 10.0

const OS_10TH1 = win32.OS_10TH1;
const OS_10TH2 = win32.OS_10TH2;
const OS_10RS1 = win32.OS_10RS1;

const OS_MAX = win32.OS_MAX;

//----------------------------------------------------
// windbg
var ReadVirtualChar = windbg.ReadVirtualChar;
var ReadVirtualUChar = windbg.ReadVirtualUChar;
var ReadVirtualShort = windbg.ReadVirtualShort;
var ReadVirtualUShort = windbg.ReadVirtualUShort;
var ReadVirtualUInt = windbg.ReadVirtualUInt;
var ReadVirtualLong = windbg.ReadVirtualLong;
var ReadVirtualULong = windbg.ReadVirtualULong;
var ReadVirtualPointer = windbg.ReadVirtualPointer;
var ReadVirtualFloat = windbg.ReadVirtualFloat;
var ReadVirtualDouble = windbg.ReadVirtualDouble;
var ReadVirtualStringA = windbg.ReadVirtualStringA;
var ReadVirtualStringW = windbg.ReadVirtualStringW;

var WriteVirtualChar = windbg.WriteVirtualChar;
var WriteVirtualUChar = windbg.WriteVirtualUChar;
var WriteVirtualShort = windbg.WriteVirtualShort;
var WriteVirtualUShort = windbg.WriteVirtualUShort;
var WriteVirtualInt = windbg.WriteVirtualInt;
var WriteVirtualUInt = windbg.WriteVirtualUInt
var WriteVirtualLong = windbg.WriteVirtualLong;
var WriteVirtualULong = windbg.WriteVirtualULong;
var WriteVirtualPointer = windbg.WriteVirtualPointer;
var WriteVirtualFloat = windbg.WriteVirtualFloat;
var WriteVirtualDouble = windbg.WriteVirtualDouble;
var WriteVirtualStringA = windbg.WriteVirtualStringA;
var WriteVirtualStringW = windbg.WriteVirtualStringW;

var GetSymbolAddress = windbg.GetSymbolAddress;
var GetAddressSymbol = windbg.GetAddressSymbol;

var GetFieldOffset = windbg.GetFieldOffset;

var ReloadModule = windbg.ReloadModule;
var ExecuteCommand = windbg.ExecuteCommand;

var GetSystemVersion = windbg.GetSystemVersion;
var IsPointer64Bit = windbg.IsPointer64Bit;

// --------------------------------------------------------------------

var SYSTEM_MSG_NAME = [
/*0x000*/ "WM_NULL" , 
/*0x001*/ "WM_CREATE" , 
/*0x002*/ "WM_DESTROY" , 
/*0x003*/ "WM_MOVE" , 
/*0x004*/ "WM_SIZEWAIT" , 
/*0x005*/ "WM_SIZE" , 
/*0x006*/ "WM_ACTIVATE" , 
/*0x007*/ "WM_SETFOCUS" , 
/*0x008*/ "WM_KILLFOCUS" , 
/*0x009*/ "WM_SETVISIBLE" , 
/*0x00A*/ "WM_ENABLE" , 
/*0x00B*/ "WM_SETREDRAW" , 
/*0x00C*/ "WM_SETTEXT" , 
/*0x00D*/ "WM_GETTEXT" , 
/*0x00E*/ "WM_GETTEXTLENGTH" , 
/*0x00F*/ "WM_PAINT" , 
/*0x010*/ "WM_CLOSE" , 
/*0x011*/ "WM_QUERYENDSESSION" , 
/*0x012*/ "WM_QUIT" , 
/*0x013*/ "WM_QUERYOPEN" , 
/*0x014*/ "WM_ERASEBKGND" , 
/*0x015*/ "WM_SYSCOLORCHANGE" , 
/*0x016*/ "WM_ENDSESSION" , 
/*0x017*/ "WM_SYSTEMERROR" ,                         
/*0x018*/ "WM_SHOWWINDOW" , 
/*0x019*/ "WM_CTLCOLOR" , 
/*0x01A*/ "WM_WININICHANGE" , 
/*0x01B*/ "WM_DEVMODECHANGE" , 
/*0x01C*/ "WM_ACTIVATEAPP" , 
/*0x01D*/ "WM_ACTIVATEAPP" , 
/*0x01E*/ "WM_TIMECHANGE" , 
/*0x01F*/ "WM_CANCELMODE" , 
/*0x020*/ "WM_SETCURSOR" , 
/*0x021*/ "WM_MOUSEACTIVATE" , 
/*0x022*/ "WM_CHILDACTIVATE" , 
/*0x023*/ "WM_QUEUESYNC" , 
/*0x024*/ "WM_GETMINMAXINFO" , 
/*0x025*/ "WM_LOGOFF" , 
/*0x026*/ "WM_PAINTICON" , 
/*0x027*/ "WM_ICONERASEBKGND" , 
/*0x028*/ "WM_NEXTDLGCTL" , 
/*0x029*/ "WM_ALTTABACTIVE" , 
/*0x02A*/ "WM_SPOOLERSTATUS" , 
/*0x02B*/ "WM_DRAWITEM" , 
/*0x02C*/ "WM_MEASUREITEM" , 
/*0x02D*/ "WM_DELETEITEM" , 
/*0x02E*/ "WM_VKEYTOITEM" , 
/*0x02F*/ "WM_CHARTOITEM" , 
/*0x030*/ "WM_SETFONT" , 
/*0x031*/ "WM_GETFONT" , 
/*0x032*/ "WM_SETHOTKEY" , 
/*0x033*/ "WM_GETHOTKEY" , 
/*0x034*/ "WM_FILESYSCHANGE" , 
/*0x035*/ "WM_ISACTIVEICON" , 
/*0x036*/ "WM_QUERYPARKICON" , 
/*0x037*/ "WM_QUERYDRAGICON" , 
/*0x038*/ "WM_WINHELP" , 
/*0x039*/ "WM_COMPAREITEM" , 
/*0x03A*/ "WM_FULLSCREEN" , 
/*0x03B*/ "WM_CLIENTSHUTDOWN" , 
/*0x03C*/ "WM_DDEMLEVENT" , 
/*0x03D*/ "WM_GETOBJECT" , 
/*0x03E*/ "WM_03E" , 
/*0x03F*/ "MM_CALCSCROLL" , 
/*0x040*/ "WM_TESTING" , 
/*0x041*/ "WM_COMPACTING" , 
/*0x042*/ "WM_OTHERWINDOWCREATED" , 
/*0x043*/ "WM_OTHERWINDOWDESTROYED" , 
/*0x044*/ "WM_COMMNOTIFY" , 
/*0x045*/ "WM_MEDIASTATUSCHANGE" , 
/*0x046*/ "WM_WINDOWPOSCHANGING" , 
/*0x047*/ "WM_WINDOWPOSCHANGED" , 
/*0x048*/ "WM_POWER" , 
/*0x049*/ "WM_COPYGLOBALDATA" , 
/*0x04A*/ "WM_COPYDATA" , 
/*0x04B*/ "WM_CANCELJOURNAL" , 
/*0x04C*/ "WM_LOGONNOTIFY" , 
/*0x04D*/ "WM_KEYF1" , 
/*0x04E*/ "WM_NOTIFY" , 
/*0x04F*/ "WM_ACCESS_WINDOW" , 
/*0x050*/ "WM_INPUTLANGCHANGEREQUEST" , 
/*0x051*/ "WM_INPUTLANGCHANGE" , 
/*0x052*/ "WM_TCARD" , 
/*0x053*/ "WM_HELP" , 
/*0x054*/ "WM_USERCHANGED" , 
/*0x055*/ "WM_NOTIFYFORMAT" , 
/*0x056*/ "WM_056" , 
/*0x057*/ "WM_057" , 
/*0x058*/ "WM_058" , 
/*0x059*/ "WM_059" , 
/*0x05A*/ "WM_05A" , 
/*0x05B*/ "WM_05B" , 
/*0x05C*/ "WM_05C" , 
/*0x05D*/ "WM_05D" , 
/*0x05E*/ "WM_05E" , 
/*0x05F*/ "WM_05F" , 
/*0x060*/ "WM_060" , 
/*0x061*/ "WM_061" , 
/*0x062*/ "WM_062" , 
/*0x063*/ "WM_063" , 
/*0x064*/ "WM_064" , 
/*0x065*/ "WM_065" , 
/*0x066*/ "WM_066" , 
/*0x067*/ "WM_067" , 
/*0x068*/ "WM_068" , 
/*0x069*/ "WM_069" , 
/*0x06A*/ "WM_06A" , 
/*0x06B*/ "WM_06B" , 
/*0x06C*/ "WM_06C" , 
/*0x06D*/ "WM_06D" , 
/*0x06E*/ "WM_06E" , 
/*0x06F*/ "WM_06F" , 
/*0x070*/ "WM_FINALDESTROY" , 
/*0x071*/ "WM_071" , 
/*0x072*/ "WM_TASKACTIVATED" , 
/*0x073*/ "WM_TASKDEACTIVATED" , 
/*0x074*/ "WM_TASKCREATED" , 
/*0x075*/ "WM_TASKDESTROYED" , 
/*0x076*/ "WM_TASKUICHANGED" , 
/*0x077*/ "WM_TASKVISIBLE" , 
/*0x078*/ "WM_TASKNOTVISIBLE" , 
/*0x079*/ "WM_SETCURSORINFO" , 
/*0x07A*/ "WM_07A" , 
/*0x07B*/ "WM_CONTEXTMENU" , 
/*0x07C*/ "WM_STYLECHANGING" , 
/*0x07D*/ "WM_STYLECHANGED" , 
/*0x07E*/ "WM_DISPLAYCHANGE" , 
/*0x07F*/ "WM_GETICON" , 
/*0x080*/ "WM_SETICON" , 
/*0x081*/ "WM_NCCREATE" , 
/*0x082*/ "WM_NCDESTROY" , 
/*0x083*/ "WM_NCCALCSIZE" , 
/*0x084*/ "WM_NCHITTEST" , 
/*0x085*/ "WM_NCPAINT" , 
/*0x086*/ "WM_NCACTIVATE" , 
/*0x087*/ "WM_GETDLGCODE" , 
/*0x088*/ "WM_SYNCPAINT" , 
/*0x089*/ "WM_SYNCTASK" , 
/*0x08A*/ "WM_08A" , 
/*0x08B*/ "WM_KLUDGEMINRECT" , 
/*0x08C*/ "WM_LPKDRAWSWITCHWND" , 
/*0x08D*/ "WM_08D" , 
/*0x08E*/ "WM_08E" , 
/*0x08F*/ "WM_08F" , 
/*0x090*/ "WM_UAHDESTROYWINDOW" , 
/*0x091*/ "WM_UAHDRAWMENU" , 
/*0x092*/ "WM_UAHDRAWMENUITEM" , 
/*0x093*/ "WM_UAHINITMENU" , 
/*0x094*/ "WM_UAHMEASUREMENUITEM" , 
/*0x095*/ "WM_UAHNCPAINTMENUPOPUP" , 
/*0x096*/ "WM_UAHUPDATE" , 
/*0x097*/ "WM_097" , 
/*0x098*/ "WM_098" , 
/*0x099*/ "WM_099" , 
/*0x09A*/ "WM_09A" , 
/*0x09B*/ "WM_09B" , 
/*0x09C*/ "WM_09C" , 
/*0x09D*/ "WM_09D" , 
/*0x09E*/ "WM_09E" , 
/*0x09F*/ "WM_09F" , 
/*0x0A0*/ "WM_NCMOUSEMOVE" , 
/*0x0A1*/ "WM_NCLBUTTONDOWN" , 
/*0x0A2*/ "WM_NCLBUTTONUP" , 
/*0x0A3*/ "WM_NCLBUTTONDBLCLK" , 
/*0x0A4*/ "WM_NCRBUTTONDOWN" , 
/*0x0A5*/ "WM_NCRBUTTONUP" , 
/*0x0A6*/ "WM_NCRBUTTONDBLCLK" , 
/*0x0A7*/ "WM_NCMBUTTONDOWN" , 
/*0x0A8*/ "WM_NCMBUTTONUP" , 
/*0x0A9*/ "WM_NCMBUTTONDBLCLK" , 
/*0x0AA*/ "WM_0AA" , 
/*0x0AB*/ "WM_NCXBUTTONDOWN" , 
/*0x0AC*/ "WM_NCXBUTTONUP" , 
/*0x0AD*/ "WM_NCXBUTTONDBLCLK" , 
/*0x0AE*/ "WM_NCUAHDRAWCAPTION" , 
/*0x0AF*/ "WM_NCUAHDRAWFRAME" , 
/*0x0B0*/ "EM_GETSEL" , 
/*0x0B1*/ "EM_SETSEL" , 
/*0x0B2*/ "EM_GETRECT" , 
/*0x0B3*/ "EM_SETRECT" , 
/*0x0B4*/ "EM_SETRECTNP" , 
/*0x0B5*/ "EM_SCROLL" , 
/*0x0B6*/ "EM_LINESCROLL" , 
/*0x0B7*/ "EM_SCROLLCARET" , 
/*0x0B8*/ "EM_GETMODIFY" , 
/*0x0B9*/ "EM_SETMODIFY" , 
/*0x0BA*/ "EM_GETLINECOUNT" , 
/*0x0BB*/ "EM_LINEINDEX" , 
/*0x0BC*/ "EM_SETHANDLE" , 
/*0x0BD*/ "EM_GETHANDLE" , 
/*0x0BE*/ "EM_GETTHUMB" , 
/*0x0BF*/ "WM_0BF" , 
/*0x0C0*/ "WM_0C0" , 
/*0x0C1*/ "EM_LINELENGTH" , 
/*0x0C2*/ "EM_REPLACESEL" , 
/*0x0C3*/ "EM_SETFONT" , 
/*0x0C4*/ "EM_GETLINE" , 
/*0x0C5*/ "EM_LIMITTEXT" , 
/*0x0C6*/ "EM_CANUNDO" , 
/*0x0C7*/ "EM_UNDO" , 
/*0x0C8*/ "EM_FMTLINES" , 
/*0x0C9*/ "EM_LINEFROMCHAR" , 
/*0x0CA*/ "EM_SETWORDBREAK" , 
/*0x0CB*/ "EM_SETTABSTOPS" , 
/*0x0CC*/ "EM_SETPASSWORDCHAR" , 
/*0x0CD*/ "EM_EMPTYUNDOBUFFER" , 
/*0x0CE*/ "EM_GETFIRSTVISIBLELINE" , 
/*0x0CF*/ "EM_SETREADONLY" , 
/*0x0D0*/ "EM_SETWORDBREAKPROC" , 
/*0x0D1*/ "EM_GETWORDBREAKPROC" , 
/*0x0D2*/ "EM_GETPASSWORDCHAR" , 
/*0x0D3*/ "EM_SETMARGINS" , 
/*0x0D4*/ "EM_GETMARGINS" , 
/*0x0D5*/ "EM_GETLIMITTEXT" , 
/*0x0D6*/ "EM_POSFROMCHAR" , 
/*0x0D7*/ "EM_CHARFROMPOS" , 
/*0x0D8*/ "EM_SETIMESTATUS" , 
/*0x0D9*/ "EM_GETIMESTATUS" , 
/*0x0DA*/ "EM_MSGMAX" , 
/*0x0DB*/ "WM_0DB" , 
/*0x0DC*/ "WM_0DC" , 
/*0x0DD*/ "WM_0DD" , 
/*0x0DE*/ "WM_0DE" , 
/*0x0DF*/ "WM_0DF" , 
/*0x0E0*/ "SBM_SETPOS" , 
/*0x0E1*/ "SBM_GETPOS" , 
/*0x0E2*/ "SBM_SETRANGE" , 
/*0x0E3*/ "SBM_GETRANGE" , 
/*0x0E4*/ "SBM_ENABLE_ARROWS" , 
/*0x0E5*/ "WM_0E5" , 
/*0x0E6*/ "SBM_SETRANGEREDRAW" , 
/*0x0E7*/ "WM_0E7" , 
/*0x0E8*/ "WM_0E8" , 
/*0x0E9*/ "SBM_SETSCROLLINFO" , 
/*0x0EA*/ "SBM_GETSCROLLINFO" , 
/*0x0EB*/ "SBM_GETSCROLLBARINFO" , 
/*0x0EC*/ "WM_0EC" , 
/*0x0ED*/ "WM_0ED" , 
/*0x0EE*/ "WM_0EE" , 
/*0x0EF*/ "WM_0EF" , 
/*0x0F0*/ "BM_GETCHECK" , 
/*0x0F1*/ "BM_SETCHECK" , 
/*0x0F2*/ "BM_GETSTATE" , 
/*0x0F3*/ "BM_SETSTATE" , 
/*0x0F4*/ "BM_SETSTYLE" , 
/*0x0F5*/ "BM_CLICK" , 
/*0x0F6*/ "BM_GETIMAGE" , 
/*0x0F7*/ "BM_SETIMAGE" , 
/*0x0F8*/ "WM_0F8" , 
/*0x0F9*/ "WM_0F9" , 
/*0x0FA*/ "WM_0FA" , 
/*0x0FB*/ "WM_0FB" , 
/*0x0FC*/ "WM_0FC" , 
/*0x0FD*/ "WM_0FD" , 
/*0x0FE*/ "WM_0FE" , 
/*0x0FF*/ "WM_INPUT" , 
/*0x100*/ "WM_KEYFIRST" , 
/*0x101*/ "WM_KEYDOWN" , 
/*0x102*/ "WM_KEYUP" , 
/*0x103*/ "WM_DEADCHAR" , 
/*0x104*/ "WM_SYSKEYDOWN" , 
/*0x105*/ "WM_SYSKEYUP" , 
/*0x106*/ "WM_SYSCHAR" , 
/*0x107*/ "WM_SYSDEADCHAR" , 
/*0x108*/ "WM_YOMICHAR" , 
/*0x109*/ "WM_UNICHAR" , 
/*0x10A*/ "WM_CONVERTREQUEST" , 
/*0x10B*/ "WM_CONVERTRESULT" , 
/*0x10C*/ "WM_INTERIM" , 
/*0x10D*/ "WM_IME_STARTCOMPOSITION" , 
/*0x10E*/ "WM_IME_ENDCOMPOSITION" , 
/*0x10F*/ "WM_IME_COMPOSITION" , 
/*0x110*/ "WM_INITDIALOG" , 
/*0x111*/ "WM_COMMAND" , 
/*0x112*/ "WM_SYSCOMMAND" , 
/*0x113*/ "WM_TIMER" , 
/*0x114*/ "WM_HSCROLL" , 
/*0x115*/ "WM_VSCROLL" , 
/*0x116*/ "WM_INITMENU" , 
/*0x117*/ "WM_INITMENUPOPUP" , 
/*0x118*/ "WM_SYSTIMER" , 
/*0x119*/ "WM_GESTURE" , 
/*0x11A*/ "WM_GESTURENOTIFY" , 
/*0x11B*/ "WM_GESTUREINPUT" , 
/*0x11C*/ "WM_GESTURENOTIFIED" , 
/*0x11D*/ "WM_11D" , 
/*0x11E*/ "WM_11E" , 
/*0x11F*/ "WM_MENUSELECT" , 
/*0x120*/ "WM_MENUCHAR" , 
/*0x121*/ "WM_ENTERIDLE" , 
/*0x122*/ "WM_MENURBUTTONUP" , 
/*0x123*/ "WM_MENUDRAG" , 
/*0x124*/ "WM_MENUGETOBJECT" , 
/*0x125*/ "WM_UNINITMENUPOPUP" , 
/*0x126*/ "WM_MENUCOMMAND" , 
/*0x127*/ "WM_CHANGEUISTATE" , 
/*0x128*/ "WM_UPDATEUISTATE" , 
/*0x129*/ "WM_QUERYUISTATE" , 
/*0x12A*/ "WM_12A" , 
/*0x12B*/ "WM_12B" , 
/*0x12C*/ "WM_12C" , 
/*0x12D*/ "WM_12D" , 
/*0x12E*/ "WM_12E" , 
/*0x12F*/ "WM_12F" , 
/*0x130*/ "WM_130" , 
/*0x131*/ "WM_LBTRACKPOINT" , 
/*0x132*/ "WM_CTLCOLORMSGBOX" , 
/*0x133*/ "WM_CTLCOLOREDIT" , 
/*0x134*/ "WM_CTLCOLORLISTBOX" , 
/*0x135*/ "WM_CTLCOLORBTN" , 
/*0x136*/ "WM_CTLCOLORDLG" , 
/*0x137*/ "WM_CTLCOLORSCROLLBAR" , 
/*0x138*/ "WM_CTLCOLORSTATIC" , 
/*0x139*/ "WM_139" , 
/*0x13A*/ "WM_13A" , 
/*0x13B*/ "WM_13B" , 
/*0x13C*/ "WM_13C" , 
/*0x13D*/ "WM_13D" , 
/*0x13E*/ "WM_13E" , 
/*0x13F*/ "WM_13F" , 
/*0x140*/ "CB_GETEDITSEL" , 
/*0x141*/ "CB_LIMITTEXT" , 
/*0x142*/ "CB_SETEDITSEL" , 
/*0x143*/ "CB_ADDSTRING" , 
/*0x144*/ "CB_DELETESTRING" , 
/*0x145*/ "CB_DIR" , 
/*0x146*/ "CB_GETCOUNT" , 
/*0x147*/ "CB_GETCURSEL" , 
/*0x148*/ "CB_GETLBTEXT" , 
/*0x149*/ "CB_GETLBTEXTLEN" , 
/*0x14A*/ "CB_INSERTSTRING" , 
/*0x14B*/ "CB_RESETCONTENT" , 
/*0x14C*/ "CB_FINDSTRING" , 
/*0x14D*/ "CB_SELECTSTRING" , 
/*0x14E*/ "CB_SETCURSEL" , 
/*0x14F*/ "CB_SHOWDROPDOWN" , 
/*0x150*/ "CB_GETITEMDATA" , 
/*0x151*/ "CB_SETITEMDATA" , 
/*0x152*/ "CB_GETDROPPEDCONTROLRECT" , 
/*0x153*/ "CB_SETITEMHEIGHT" , 
/*0x154*/ "CB_GETITEMHEIGHT" , 
/*0x155*/ "CB_SETEXTENDEDUI" , 
/*0x156*/ "CB_GETEXTENDEDUI" , 
/*0x157*/ "CB_GETDROPPEDSTATE" , 
/*0x158*/ "CB_FINDSTRINGEXACT" , 
/*0x159*/ "CB_SETLOCALE" , 
/*0x15A*/ "CB_GETLOCALE" , 
/*0x15B*/ "CB_GETTOPINDEX" , 
/*0x15C*/ "CB_SETTOPINDEX" , 
/*0x15D*/ "CB_GETHORIZONTALEXTENT" , 
/*0x15E*/ "CB_SETHORIZONTALEXTENT" , 
/*0x15F*/ "CB_GETDROPPEDWIDTH" , 
/*0x160*/ "CB_SETDROPPEDWIDTH" , 
/*0x161*/ "CB_INITSTORAGE" , 
/*0x162*/ "CB_MSGMAX_OLD" , 
/*0x163*/ "CB_MULTIPLEADDSTRING" , 
/*0x164*/ "CB_GETCOMBOBOXINFO" , 
/*0x165*/ "CB_MSGMAX" , // (_WIN32_WINNT >= 0x0501)
/*0x166*/ "WM_166" , 
/*0x167*/ "WM_167" , 
/*0x168*/ "WM_168" , 
/*0x169*/ "WM_169" , 
/*0x16A*/ "WM_16A" , 
/*0x16B*/ "WM_16B" , 
/*0x16C*/ "WM_16C" , 
/*0x16D*/ "WM_16D" , 
/*0x16E*/ "WM_16E" , 
/*0x16F*/ "WM_16F" , 
/*0x170*/ "STM_SETICON" , 
/*0x171*/ "STM_GETICON" , 
/*0x172*/ "STM_SETIMAGE" , 
/*0x173*/ "STM_GETIMAGE" , 
/*0x174*/ "STM_MSGMAX" , 
/*0x175*/ "WM_175" , 
/*0x176*/ "WM_176" , 
/*0x177*/ "WM_177" , 
/*0x178*/ "WM_178" , 
/*0x179*/ "WM_179" , 
/*0x17A*/ "WM_17A" , 
/*0x17B*/ "WM_17B" , 
/*0x17C*/ "WM_17C" , 
/*0x17D*/ "WM_17D" , 
/*0x17E*/ "WM_17E" , 
/*0x17F*/ "WM_17F" , 
/*0x180*/ "LB_ADDSTRING" , 
/*0x181*/ "LB_INSERTSTRING" , 
/*0x182*/ "LB_DELETESTRING" , 
/*0x183*/ "LB_SELITEMRANGEEX" , 
/*0x184*/ "LB_RESETCONTENT" , 
/*0x185*/ "LB_SETSEL" , 
/*0x186*/ "LB_SETCURSEL" , 
/*0x187*/ "LB_GETSEL" , 
/*0x188*/ "LB_GETCURSEL" , 
/*0x189*/ "LB_GETTEXT" , 
/*0x18A*/ "LB_GETTEXTLEN" , 
/*0x18B*/ "LB_GETCOUNT" , 
/*0x18C*/ "LB_SELECTSTRING" , 
/*0x18D*/ "LB_DIR" , 
/*0x18E*/ "LB_GETTOPINDEX" , 
/*0x18F*/ "LB_FINDSTRING" , 
/*0x190*/ "LB_GETSELCOUNT" , 
/*0x191*/ "LB_GETSELITEMS" , 
/*0x192*/ "LB_SETTABSTOPS" , 
/*0x193*/ "LB_GETHORIZONTALEXTENT" , 
/*0x194*/ "LB_SETHORIZONTALEXTENT" , 
/*0x195*/ "LB_SETCOLUMNWIDTH" , 
/*0x196*/ "LB_ADDFILE" , 
/*0x197*/ "LB_SETTOPINDEX" , 
/*0x198*/ "LB_GETITEMRECT" , 
/*0x199*/ "LB_GETITEMDATA" , 
/*0x19A*/ "LB_SETITEMDATA" , 
/*0x19B*/ "LB_SELITEMRANGE" , 
/*0x19C*/ "LB_SETANCHORINDEX" , 
/*0x19D*/ "LB_GETANCHORINDEX" , 
/*0x19E*/ "LB_SETCARETINDEX" , 
/*0x19F*/ "LB_GETCARETINDEX" , 
/*0x1A0*/ "LB_SETITEMHEIGHT" , 
/*0x1A1*/ "LB_GETITEMHEIGHT" , 
/*0x1A2*/ "LB_FINDSTRINGEXACT" , 
/*0x1A3*/ "LBCB_CARETON" , 
/*0x1A4*/ "LBCB_CARETOFF" , 
/*0x1A5*/ "LB_SETLOCALE" , 
/*0x1A6*/ "LB_GETLOCALE" , 
/*0x1A7*/ "LB_SETCOUNT" , 
/*0x1A8*/ "LB_INITSTORAGE" , 
/*0x1A9*/ "LB_ITEMFROMPOINT" , 
/*0x1AA*/ "LB_INSERTSTRINGUPPER" , 
/*0x1AB*/ "LB_INSERTSTRINGLOWER" , 
/*0x1AC*/ "LB_ADDSTRINGUPPER" , 
/*0x1AD*/ "LB_ADDSTRINGLOWER" , 
/*0x1AE*/ "LBCB_STARTTRACK" , 
/*0x1AF*/ "LBCB_ENDTRACK" , 
/*0x1B0*/ "LB_MSGMAX_OLD" , 
/*0x1B1*/ "LB_MULTIPLEADDSTRING" ,
/*0x1B2*/ "LB_GETLISTBOXINFO" , 
/*0x1B3*/ "LB_MSGMAX" , // _WIN32_WINNT >= 0x0501
/*0x1B4*/ "WM_1B4" , 
/*0x1B5*/ "WM_1B5" , 
/*0x1B6*/ "WM_1B6" , 
/*0x1B7*/ "WM_1B7" , 
/*0x1B8*/ "WM_1B8" , 
/*0x1B9*/ "WM_1B9" , 
/*0x1BA*/ "WM_1BA" , 
/*0x1BB*/ "WM_1BB" , 
/*0x1BC*/ "WM_1BC" , 
/*0x1BD*/ "WM_1BD" , 
/*0x1BE*/ "WM_1BE" , 
/*0x1BF*/ "WM_1BF" , 
/*0x1C0*/ "WM_1C0" , 
/*0x1C1*/ "WM_1C1" , 
/*0x1C2*/ "WM_1C2" , 
/*0x1C3*/ "WM_1C3" , 
/*0x1C4*/ "WM_1C4" , 
/*0x1C5*/ "WM_1C5" , 
/*0x1C6*/ "WM_1C6" , 
/*0x1C7*/ "WM_1C7" , 
/*0x1C8*/ "WM_1C8" , 
/*0x1C9*/ "WM_1C9" , 
/*0x1CA*/ "WM_1CA" , 
/*0x1CB*/ "WM_1CB" , 
/*0x1CC*/ "WM_1CC" , 
/*0x1CD*/ "WM_1CD" , 
/*0x1CE*/ "WM_1CE" , 
/*0x1CF*/ "WM_1CF" , 
/*0x1D0*/ "WM_1D0" , 
/*0x1D1*/ "WM_1D1" , 
/*0x1D2*/ "WM_1D2" , 
/*0x1D3*/ "WM_1D3" , 
/*0x1D4*/ "WM_1D4" , 
/*0x1D5*/ "WM_1D5" , 
/*0x1D6*/ "WM_1D6" , 
/*0x1D7*/ "WM_1D7" , 
/*0x1D8*/ "WM_1D8" , 
/*0x1D9*/ "WM_1D9" , 
/*0x1DA*/ "WM_1DA" , 
/*0x1DB*/ "WM_1DB" , 
/*0x1DC*/ "WM_1DC" , 
/*0x1DD*/ "WM_1DD" , 
/*0x1DE*/ "WM_1DE" , 
/*0x1DF*/ "WM_1DF" , 
/*0x1E0*/ "MN_SETHMENU" , 
/*0x1E1*/ "MN_GETHMENU" , 
/*0x1E2*/ "MN_SIZEWINDOW" , 
/*0x1E3*/ "MN_OPENHIERARCHY" , 
/*0x1E4*/ "MN_CLOSEHIERARCHY" , 
/*0x1E5*/ "MN_SELECTITEM" , 
/*0x1E6*/ "MN_CANCELMENUS" , 
/*0x1E7*/ "MN_SELECTFIRSTVALIDITEM" , 
/*0x1E8*/ "WM_1E8" , 
/*0x1E9*/ "WM_1E9" , 
/*0x1EA*/ "MN_GETPPOPUPMENU" , 
/*0x1EB*/ "MN_FINDMENUWINDOWFROMPOINT" , 
/*0x1EC*/ "MN_SHOWPOPUPWINDOW" , 
/*0x1ED*/ "MN_BUTTONDOWN" , 
/*0x1EE*/ "MN_MOUSEMOVE" , 
/*0x1EF*/ "MN_BUTTONUP" , 
/*0x1F0*/ "MN_SETTIMERTOOPENHIERARCHY" , 
/*0x1F1*/ "MN_DBLCLK" , 
/*0x1F2*/ "MN_ENDMENU" , 
/*0x1F3*/ "MN_DODRAGDROP" , 
/*0x1F4*/ "MN_ENDMENU" , // same with 0x1F2?
/*0x1F5*/ "WM_1F5" , 
/*0x1F6*/ "WM_1F6" , 
/*0x1F7*/ "WM_1F7" , 
/*0x1F8*/ "WM_1F8" , 
/*0x1F9*/ "WM_1F9" , 
/*0x1FA*/ "WM_1FA" , 
/*0x1FB*/ "WM_1FB" , 
/*0x1FC*/ "WM_1FC" , 
/*0x1FD*/ "WM_1FD" , 
/*0x1FE*/ "WM_1FE" , 
/*0x1FF*/ "WM_1FF" , 
/*0x200*/ "WM_MOUSEMOVE" , 
/*0x201*/ "WM_LBUTTONDOWN" , 
/*0x202*/ "WM_LBUTTONUP" , 
/*0x203*/ "WM_LBUTTONDBLCLK" , 
/*0x204*/ "WM_RBUTTONDOWN" , 
/*0x205*/ "WM_RBUTTONUP" , 
/*0x206*/ "WM_RBUTTONDBLCLK" , 
/*0x207*/ "WM_MBUTTONDOWN" , 
/*0x208*/ "WM_MBUTTONUP" , 
/*0x209*/ "WM_MBUTTONDBLCLK" , 
/*0x20A*/ "WM_MOUSEWHEEL" , 
/*0x20B*/ "WM_XBUTTONDOWN" , 
/*0x20C*/ "WM_XBUTTONUP" , 
/*0x20D*/ "WM_XBUTTONDBLCLK" , 
/*0x20E*/ "WM_MOUSEHWHEEL" , 
/*0x20F*/ "WM_20F" , 
/*0x210*/ "WM_PARENTNOTIFY" , 
/*0x211*/ "WM_ENTERMENULOOP" , 
/*0x212*/ "WM_EXITMENULOOP" , 
/*0x213*/ "WM_NEXTMENU" , 
/*0x214*/ "WM_SIZING" , 
/*0x215*/ "WM_CAPTURECHANGED" , 
/*0x216*/ "WM_MOVING" , 
/*0x217*/ "WM_217" , 
/*0x218*/ "WM_POWERBROADCAST" , 
/*0x219*/ "WM_DEVICECHANGE" , 
/*0x21A*/ "WM_21A" , 
/*0x21B*/ "WM_21B" , 
/*0x21C*/ "WM_21C" , 
/*0x21D*/ "WM_21D" , 
/*0x21E*/ "WM_21E" , 
/*0x21F*/ "WM_21F" , 
/*0x220*/ "WM_MDICREATE" , 
/*0x221*/ "WM_MDIDESTROY" , 
/*0x222*/ "WM_MDIACTIVATE" , 
/*0x223*/ "WM_MDIRESTORE" , 
/*0x224*/ "WM_MDINEXT" , 
/*0x225*/ "WM_MDIMAXIMIZE" , 
/*0x226*/ "WM_MDITILE" , 
/*0x227*/ "WM_MDICASCADE" , 
/*0x228*/ "WM_MDIICONARRANGE" , 
/*0x229*/ "WM_MDIGETACTIVE" , 
/*0x22A*/ "WM_DROPOBJECT" , 
/*0x22B*/ "WM_QUERYDROPOBJECT" , 
/*0x22C*/ "WM_BEGINDRAG" , 
/*0x22D*/ "WM_DRAGLOOP" , 
/*0x22E*/ "WM_DRAGSELECT" , 
/*0x22F*/ "WM_DRAGMOVE" , 
/*0x230*/ "WM_MDISETMENU" , 
/*0x231*/ "WM_ENTERSIZEMOVE" , 
/*0x232*/ "WM_EXITSIZEMOVE" , 
/*0x233*/ "WM_DROPFILES" , 
/*0x234*/ "WM_MDIREFRESHMENU" , 
/*0x235*/ "WM_235" , 
/*0x236*/ "WM_236" , 
/*0x237*/ "WM_237" , 
/*0x238*/ "WM_POINTERDEVICECHANGE" , 
/*0x239*/ "WM_POINTERDEVICEINRANGE" , 
/*0x23A*/ "WM_POINTERDEVICEOUTOFRANGE" , 
/*0x23B*/ "WM_STOPINERTIA" , 
/*0x23C*/ "WM_ENDINERTIA" , 
/*0x23D*/ "WM_EDGYINERTIA" , 
/*0x23E*/ "WM_23E" , 
/*0x23F*/ "WM_23F" , 
/*0x240*/ "WM_TOUCH" , 
/*0x241*/ "WM_NCPOINTERUPDATE" , 
/*0x242*/ "WM_NCPOINTERDOWN" , 
/*0x243*/ "WM_NCPOINTERUP" , 
/*0x244*/ "WM_NCPOINTERLAST" , 
/*0x245*/ "WM_POINTERUPDATE" , 
/*0x246*/ "WM_POINTERDOWN" , 
/*0x247*/ "WM_POINTERUP" , 
/*0x248*/ "WM_248" , 
/*0x249*/ "WM_POINTERENTER" , 
/*0x24A*/ "WM_POINTERLEAVE" , 
/*0x24B*/ "WM_POINTERACTIVATE" , 
/*0x24C*/ "WM_POINTERCAPTURECHANGED" , 
/*0x24D*/ "WM_TOUCHHITTESTING" , 
/*0x24E*/ "WM_POINTERWHEEL" , 
/*0x24F*/ "WM_POINTERHWHEEL" , 
/*0x250*/ "WM_250" , 
/*0x251*/ "WM_251" , 
/*0x252*/ "WM_252" , 
/*0x253*/ "WM_253" , 
/*0x254*/ "WM_254" , 
/*0x255*/ "WM_255" , 
/*0x256*/ "WM_256" , 
/*0x257*/ "WM_257" , 
/*0x258*/ "WM_258" , 
/*0x259*/ "WM_259" , 
/*0x25A*/ "WM_25A" , 
/*0x25B*/ "WM_25B" , 
/*0x25C*/ "WM_25C" , 
/*0x25D*/ "WM_25D" , 
/*0x25E*/ "WM_25E" , 
/*0x25F*/ "WM_25F" , 
/*0x260*/ "WM_260" , 
/*0x261*/ "WM_261" , 
/*0x262*/ "WM_262" , 
/*0x263*/ "WM_263" , 
/*0x264*/ "WM_264" , 
/*0x265*/ "WM_265" , 
/*0x266*/ "WM_266" , 
/*0x267*/ "WM_267" , 
/*0x268*/ "WM_268" , 
/*0x269*/ "WM_269" , 
/*0x26A*/ "WM_26A" , 
/*0x26B*/ "WM_26B" , 
/*0x26C*/ "WM_26C" , 
/*0x26D*/ "WM_26D" , 
/*0x26E*/ "WM_26E" , 
/*0x26F*/ "WM_26F" , 
/*0x270*/ "WM_VISIBILITYCHANGED" , 
/*0x271*/ "WM_VIEWSTATECHANGED" , 
/*0x272*/ "WM_UNREGISTER_WINDOW_SERVICES" , 
/*0x273*/ "WM_CONSOLIDATED" , 
/*0x274*/ "WM_274" , 
/*0x275*/ "WM_275" , 
/*0x276*/ "WM_276" , 
/*0x277*/ "WM_277" , 
/*0x278*/ "WM_278" , 
/*0x279*/ "WM_279" , 
/*0x27A*/ "WM_27A" , 
/*0x27B*/ "WM_27B" , 
/*0x27C*/ "WM_27C" , 
/*0x27D*/ "WM_27D" , 
/*0x27E*/ "WM_27E" , 
/*0x27F*/ "WM_27F" , 
/*0x280*/ "WM_IME_REPORT" , 
/*0x281*/ "WM_IME_SETCONTEXT" , 
/*0x282*/ "WM_IME_NOTIFY" , 
/*0x283*/ "WM_IME_CONTROL" , 
/*0x284*/ "WM_IME_COMPOSITIONFULL" , 
/*0x285*/ "WM_IME_SELECT" , 
/*0x286*/ "WM_IME_CHAR" , 
/*0x287*/ "WM_IME_SYSTEM" , 
/*0x288*/ "WM_IME_REQUEST" , 
/*0x289*/ "WM_289" , 
/*0x28A*/ "WM_28A" , 
/*0x28B*/ "WM_28B" , 
/*0x28C*/ "WM_28C" , 
/*0x28D*/ "WM_28D" , 
/*0x28E*/ "WM_28E" , 
/*0x28F*/ "WM_28F" , 
/*0x290*/ "WM_IME_KEYDOWN" , 
/*0x291*/ "WM_IME_KEYUP" , 
/*0x292*/ "WM_292" , 
/*0x293*/ "WM_293" , 
/*0x294*/ "WM_294" , 
/*0x295*/ "WM_295" , 
/*0x296*/ "WM_296" , 
/*0x297*/ "WM_297" , 
/*0x298*/ "WM_298" , 
/*0x299*/ "WM_299" , 
/*0x29A*/ "WM_29A" , 
/*0x29B*/ "WM_29B" , 
/*0x29C*/ "WM_29C" , 
/*0x29D*/ "WM_29D" , 
/*0x29E*/ "WM_29E" , 
/*0x29F*/ "WM_KANJILAST" , 
/*0x2A0*/ "WM_NCMOUSEHOVER" , 
/*0x2A1*/ "WM_MOUSEHOVER" , 
/*0x2A2*/ "WM_NCMOUSELEAVE" , 
/*0x2A3*/ "WM_MOUSELEAVE" , 
/*0x2A4*/ "WM_2A4" , 
/*0x2A5*/ "WM_2A5" , 
/*0x2A6*/ "WM_2A6" , 
/*0x2A7*/ "WM_2A7" , 
/*0x2A8*/ "WM_2A8" , 
/*0x2A9*/ "WM_2A9" , 
/*0x2AA*/ "WM_2AA" , 
/*0x2AB*/ "WM_2AB" , 
/*0x2AC*/ "WM_2AC" , 
/*0x2AD*/ "WM_2AD" , 
/*0x2AE*/ "WM_2AE" , 
/*0x2AF*/ "WM_TRACKMOUSEEVENT_LAST" , 
/*0x2B0*/ "WM_2B0" , 
/*0x2B1*/ "WM_WTSSESSION_CHANGE" , 
/*0x2B2*/ "WM_2B2" , 
/*0x2B3*/ "WM_2B3" , 
/*0x2B4*/ "WM_2B4" , 
/*0x2B5*/ "WM_2B5" , 
/*0x2B6*/ "WM_2B6" , 
/*0x2B7*/ "WM_2B7" , 
/*0x2B8*/ "WM_2B8" , 
/*0x2B9*/ "WM_2B9" , 
/*0x2BA*/ "WM_2BA" , 
/*0x2BB*/ "WM_2BB" , 
/*0x2BC*/ "WM_2BC" , 
/*0x2BD*/ "WM_2BD" , 
/*0x2BE*/ "WM_2BE" , 
/*0x2BF*/ "WM_2BF" , 
/*0x2C0*/ "WM_TABLET_FIRST" , 
/*0x2C1*/ "WM_2C1" , 
/*0x2C2*/ "WM_2C2" , 
/*0x2C3*/ "WM_2C3" , 
/*0x2C4*/ "WM_2C4" , 
/*0x2C5*/ "WM_2C5" , 
/*0x2C6*/ "WM_2C6" , 
/*0x2C7*/ "WM_2C7" , 
/*0x2C8*/ "WM_POINTERDEVICEADDED" , 
/*0x2C9*/ "WM_POINTERDEVICEDELETED" , 
/*0x2CA*/ "WM_2CA" , 
/*0x2CB*/ "WM_FLICK" , 
/*0x2CC*/ "WM_2CC" , 
/*0x2CD*/ "WM_FLICKINTERNAL" , 
/*0x2CE*/ "WM_2CE" , 
/*0x2CF*/ "WM_2CF" , 
/*0x2D0*/ "WM_2D0" , 
/*0x2D1*/ "WM_2D1" , 
/*0x2D2*/ "WM_2D2" , 
/*0x2D3*/ "WM_2D3" , 
/*0x2D4*/ "WM_2D4" , 
/*0x2D5*/ "WM_2D5" , 
/*0x2D6*/ "WM_2D6" , 
/*0x2D7*/ "WM_2D7" , 
/*0x2D8*/ "WM_2D8" , 
/*0x2D9*/ "WM_2D9" , 
/*0x2DA*/ "WM_2DA" , 
/*0x2DB*/ "WM_2DB" , 
/*0x2DC*/ "WM_2DC" , 
/*0x2DD*/ "WM_2DD" , 
/*0x2DE*/ "WM_2DE" , 
/*0x2DF*/ "WM_TABLET_LAST" , 
/*0x2E0*/ "WM_2E0" , 
/*0x2E1*/ "WM_2E1" , 
/*0x2E2*/ "WM_2E2" , 
/*0x2E3*/ "WM_2E3" , 
/*0x2E4*/ "WM_2E4" , 
/*0x2E5*/ "WM_2E5" , 
/*0x2E6*/ "WM_2E6" , 
/*0x2E7*/ "WM_2E7" , 
/*0x2E8*/ "WM_2E8" , 
/*0x2E9*/ "WM_2E9" , 
/*0x2EA*/ "WM_2EA" , 
/*0x2EB*/ "WM_2EB" , 
/*0x2EC*/ "WM_2EC" , 
/*0x2ED*/ "WM_2ED" , 
/*0x2EE*/ "WM_2EE" , 
/*0x2EF*/ "WM_2EF" , 
/*0x2F0*/ "WM_2F0" , 
/*0x2F1*/ "WM_2F1" , 
/*0x2F2*/ "WM_2F2" , 
/*0x2F3*/ "WM_2F3" , 
/*0x2F4*/ "WM_2F4" , 
/*0x2F5*/ "WM_2F5" , 
/*0x2F6*/ "WM_2F6" , 
/*0x2F7*/ "WM_2F7" , 
/*0x2F8*/ "WM_2F8" , 
/*0x2F9*/ "WM_2F9" , 
/*0x2FA*/ "WM_2FA" , 
/*0x2FB*/ "WM_2FB" , 
/*0x2FC*/ "WM_2FC" , 
/*0x2FD*/ "WM_2FD" , 
/*0x2FE*/ "WM_2FE" , 
/*0x2FF*/ "WM_2FF" , 
/*0x300*/ "WM_CUT" , 
/*0x301*/ "WM_COPY" , 
/*0x302*/ "WM_PASTE" , 
/*0x303*/ "WM_CLEAR" , 
/*0x304*/ "WM_UNDO" , 
/*0x305*/ "WM_RENDERFORMAT" , 
/*0x306*/ "WM_RENDERALLFORMATS" , 
/*0x307*/ "WM_DESTROYCLIPBOARD" , 
/*0x308*/ "WM_DRAWCLIPBOARD" , 
/*0x309*/ "WM_PAINTCLIPBOARD" , 
/*0x30A*/ "WM_VSCROLLCLIPBOARD" , 
/*0x30B*/ "WM_SIZECLIPBOARD" , 
/*0x30C*/ "WM_ASKCBFORMATNAME" , 
/*0x30D*/ "WM_CHANGECBCHAIN" , 
/*0x30E*/ "WM_HSCROLLCLIPBOARD" , 
/*0x30F*/ "WM_QUERYNEWPALETTE" , 
/*0x310*/ "WM_PALETTEISCHANGING" , 
/*0x311*/ "WM_PALETTECHANGED" , 
/*0x312*/ "WM_HOTKEY" , 
/*0x313*/ "WM_SYSMENU" , 
/*0x314*/ "WM_HOOKMSG" , 
/*0x315*/ "WM_EXITPROCESS" , 
/*0x316*/ "WM_WAKETHREAD" , 
/*0x317*/ "WM_PRINT" , 
/*0x318*/ "WM_PRINTCLIENT" , 
/*0x319*/ "WM_APPCOMMAND" , 
/*0x31A*/ "WM_THEMECHANGED" , 
/*0x31B*/ "WM_UAHINIT" , 
/*0x31C*/ "WM_DESKTOPNOTIFY" , 
/*0x31D*/ "WM_CLIPBOARDUPDATE" , 
/*0x31E*/ "WM_DWMCOMPOSITIONCHANGED" , 
/*0x31F*/ "WM_DWMNCRENDERINGCHANGED" , 
/*0x320*/ "WM_DWMCOLORIZATIONCOLORCHANGED" , 
/*0x321*/ "WM_DWMWINDOWMAXIMIZEDCHANGE" , 
/*0x322*/ "WM_DWMEXILEFRAME" , 
/*0x323*/ "WM_DWMSENDICONICTHUMBNAIL" , 
/*0x324*/ "WM_MAGNIFICATION_STARTED" , 
/*0x325*/ "WM_MAGNIFICATION_ENDED" , 
/*0x326*/ "WM_DWMSENDICONICLIVEPREVIEWBITMAP" , 
/*0x327*/ "WM_DWMTHUMBNAILSIZECHANGED" , 
/*0x328*/ "WM_MAGNIFICATION_OUTPUT" , 
/*0x329*/ "WM_BSDRDATA" , 
/*0x32A*/ "WM_DWMTRANSITIONSTATECHANGED" , 
/*0x32B*/ "WM_32B" , 
/*0x32C*/ "WM_KEYBOARDCORRECTIONCALLOUT" , 
/*0x32D*/ "WM_KEYBOARDCORRECTIONACTION" , 
/*0x32E*/ "WM_UIACTION" , 
/*0x32F*/ "WM_ROUTED_UI_EVENT" , 
/*0x330*/ "WM_MEASURECONTROL" , 
/*0x331*/ "WM_GETACTIONTEXT" , 
/*0x332*/ "WM_332" , 
/*0x333*/ "WM_FORWARDKEYDOWN" , 
/*0x334*/ "WM_FORWARDKEYUP" , 
/*0x335*/ "WM_335" , 
/*0x336*/ "WM_336" , 
/*0x337*/ "WM_337" , 
/*0x338*/ "WM_338" , 
/*0x339*/ "WM_339" , 
/*0x33A*/ "WM_33A" , 
/*0x33B*/ "WM_33B" , 
/*0x33C*/ "WM_33C" , 
/*0x33D*/ "WM_33D" , 
/*0x33E*/ "WM_33E" , 
/*0x33F*/ "WM_GETTITLEBARINFOEX" , 
/*0x340*/ "WM_NOTIFYWOW" , 
/*0x341*/ "WM_341" , 
/*0x342*/ "WM_342" , 
/*0x343*/ "WM_343" , 
/*0x344*/ "WM_344" , 
/*0x345*/ "WM_345" , 
/*0x346*/ "WM_346" , 
/*0x347*/ "WM_347" , 
/*0x348*/ "WM_348" , 
/*0x349*/ "WM_349" , 
/*0x34A*/ "WM_34A" , 
/*0x34B*/ "WM_34B" , 
/*0x34C*/ "WM_34C" , 
/*0x34D*/ "WM_34D" , 
/*0x34E*/ "WM_34E" , 
/*0x34F*/ "WM_34F" , 
/*0x350*/ "WM_350" , 
/*0x351*/ "WM_351" , 
/*0x352*/ "WM_352" , 
/*0x353*/ "WM_353" , 
/*0x354*/ "WM_354" , 
/*0x355*/ "WM_355" , 
/*0x356*/ "WM_356" , 
/*0x357*/ "WM_357" , 
/*0x358*/ "WM_HANDHELDFIRST" , 
/*0x359*/ "WM_359" , 
/*0x35A*/ "WM_35A" , 
/*0x35B*/ "WM_35B" , 
/*0x35C*/ "WM_35C" , 
/*0x35D*/ "WM_35D" , 
/*0x35E*/ "WM_35E" , 
/*0x35F*/ "WM_HANDHELDLAST" , 
/*0x360*/ "WM_AFXFIRST" , 
/*0x361*/ "WM_361" , 
/*0x362*/ "WM_362" , 
/*0x363*/ "WM_363" , 
/*0x364*/ "WM_364" , 
/*0x365*/ "WM_365" , 
/*0x366*/ "WM_366" , 
/*0x367*/ "WM_367" , 
/*0x368*/ "WM_368" , 
/*0x369*/ "WM_369" , 
/*0x36A*/ "WM_36A" , 
/*0x36B*/ "WM_36B" , 
/*0x36C*/ "WM_36C" , 
/*0x36D*/ "WM_36D" , 
/*0x36E*/ "WM_36E" , 
/*0x36F*/ "WM_36F" , 
/*0x370*/ "WM_370" , 
/*0x371*/ "WM_371" , 
/*0x372*/ "WM_372" , 
/*0x373*/ "WM_373" , 
/*0x374*/ "WM_374" , 
/*0x375*/ "WM_375" , 
/*0x376*/ "WM_376" , 
/*0x377*/ "WM_377" , 
/*0x378*/ "WM_378" , 
/*0x379*/ "WM_379" , 
/*0x37A*/ "WM_37A" , 
/*0x37B*/ "WM_37B" , 
/*0x37C*/ "WM_37C" , 
/*0x37D*/ "WM_37D" , 
/*0x37E*/ "WM_37E" , 
/*0x37F*/ "WM_AFXLAST" , 
/*0x380*/ "WM_PENWINFIRST" , 
/*0x381*/ "WM_381" , 
/*0x382*/ "WM_382" , 
/*0x383*/ "WM_383" , 
/*0x384*/ "WM_384" , 
/*0x385*/ "WM_385" , 
/*0x386*/ "WM_386" , 
/*0x387*/ "WM_387" , 
/*0x388*/ "WM_388" , 
/*0x389*/ "WM_389" , 
/*0x38A*/ "WM_38A" , 
/*0x38B*/ "WM_38B" , 
/*0x38C*/ "WM_38C" , 
/*0x38D*/ "WM_38D" , 
/*0x38E*/ "WM_38E" , 
/*0x38F*/ "WM_PENWINLAST" , 
/*0x390*/ "WM_COALESCE_FIRST" , 
/*0x391*/ "WM_391" , 
/*0x392*/ "WM_392" , 
/*0x393*/ "WM_393" , 
/*0x394*/ "WM_394" , 
/*0x395*/ "WM_395" , 
/*0x396*/ "WM_396" , 
/*0x397*/ "WM_397" , 
/*0x398*/ "WM_398" , 
/*0x399*/ "WM_399" , 
/*0x39A*/ "WM_39A" , 
/*0x39B*/ "WM_39B" , 
/*0x39C*/ "WM_39C" , 
/*0x39D*/ "WM_39D" , 
/*0x39E*/ "WM_39E" , 
/*0x39F*/ "WM_COALESCE_LAST" , 
/*0x3A0*/ "WM_MM_RESERVED_FIRST" , 
/*0x3A1*/ "WM_3A1" , 
/*0x3A2*/ "WM_3A2" , 
/*0x3A3*/ "WM_3A3" , 
/*0x3A4*/ "WM_3A4" , 
/*0x3A5*/ "WM_3A5" , 
/*0x3A6*/ "WM_3A6" , 
/*0x3A7*/ "WM_3A7" , 
/*0x3A8*/ "WM_3A8" , 
/*0x3A9*/ "WM_3A9" , 
/*0x3AA*/ "WM_3AA" , 
/*0x3AB*/ "WM_3AB" , 
/*0x3AC*/ "WM_3AC" , 
/*0x3AD*/ "WM_3AD" , 
/*0x3AE*/ "WM_3AE" , 
/*0x3AF*/ "WM_3AF" , 
/*0x3B0*/ "WM_3B0" , 
/*0x3B1*/ "WM_3B1" , 
/*0x3B2*/ "WM_3B2" , 
/*0x3B3*/ "WM_3B3" , 
/*0x3B4*/ "WM_3B4" , 
/*0x3B5*/ "WM_3B5" , 
/*0x3B6*/ "WM_3B6" , 
/*0x3B7*/ "WM_3B7" , 
/*0x3B8*/ "WM_3B8" , 
/*0x3B9*/ "WM_3B9" , 
/*0x3BA*/ "WM_3BA" , 
/*0x3BB*/ "WM_3BB" , 
/*0x3BC*/ "WM_3BC" , 
/*0x3BD*/ "WM_3BD" , 
/*0x3BE*/ "WM_3BE" , 
/*0x3BF*/ "WM_3BF" , 
/*0x3C0*/ "WM_3C0" , 
/*0x3C1*/ "WM_3C1" , 
/*0x3C2*/ "WM_3C2" , 
/*0x3C3*/ "WM_3C3" , 
/*0x3C4*/ "WM_3C4" , 
/*0x3C5*/ "WM_3C5" , 
/*0x3C6*/ "WM_3C6" , 
/*0x3C7*/ "WM_3C7" , 
/*0x3C8*/ "WM_3C8" , 
/*0x3C9*/ "WM_3C9" , 
/*0x3CA*/ "WM_3CA" , 
/*0x3CB*/ "WM_3CB" , 
/*0x3CC*/ "WM_3CC" , 
/*0x3CD*/ "WM_3CD" , 
/*0x3CE*/ "WM_3CE" , 
/*0x3CF*/ "WM_3CF" , 
/*0x3D0*/ "WM_3D0" , 
/*0x3D1*/ "WM_3D1" , 
/*0x3D2*/ "WM_3D2" , 
/*0x3D3*/ "WM_3D3" , 
/*0x3D4*/ "WM_3D4" , 
/*0x3D5*/ "WM_3D5" , 
/*0x3D6*/ "WM_3D6" , 
/*0x3D7*/ "WM_3D7" , 
/*0x3D8*/ "WM_3D8" , 
/*0x3D9*/ "WM_3D9" , 
/*0x3DA*/ "WM_3DA" , 
/*0x3DB*/ "WM_3DB" , 
/*0x3DC*/ "WM_3DC" , 
/*0x3DD*/ "WM_3DD" , 
/*0x3DE*/ "WM_3DE" , 
/*0x3DF*/ "WM_MM_RESERVED_LAST" , 
/*0x3E0*/ "WM_DDE_INITIATE" , 
/*0x3E1*/ "WM_DDE_TERMINATE" , 
/*0x3E2*/ "WM_DDE_ADVISE" , 
/*0x3E3*/ "WM_DDE_UNADVISE" , 
/*0x3E4*/ "WM_DDE_ACK" , 
/*0x3E5*/ "WM_DDE_DATA" , 
/*0x3E6*/ "WM_DDE_REQUEST" , 
/*0x3E7*/ "WM_DDE_POKE" , 
/*0x3E8*/ "WM_DDE_EXECUTE" , 
/*0x3E9*/ "WM_3E9" , 
/*0x3EA*/ "WM_3EA" , 
/*0x3EB*/ "WM_3EB" , 
/*0x3EC*/ "WM_3EC" , 
/*0x3ED*/ "WM_3ED" , 
/*0x3EE*/ "WM_3EE" , 
/*0x3EF*/ "WM_INTERNAL_DDE_LAST" , 
/*0x3F0*/ "WM_3F0" , 
/*0x3F1*/ "WM_3F1" , 
/*0x3F2*/ "WM_3F2" , 
/*0x3F3*/ "WM_3F3" , 
/*0x3F4*/ "WM_3F4" , 
/*0x3F5*/ "WM_3F5" , 
/*0x3F6*/ "WM_3F6" , 
/*0x3F7*/ "WM_3F7" , 
/*0x3F8*/ "WM_3F8" , 
/*0x3F9*/ "WM_3F9" , 
/*0x3FA*/ "WM_3FA" , 
/*0x3FB*/ "WM_3FB" , 
/*0x3FC*/ "WM_3FC" , 
/*0x3FD*/ "WM_3FD" , 
/*0x3FE*/ "WM_3FE" , 
/*0x3FF*/ "WM_3FF" 
];




// --------------------------------------------------------------------

function Work()
{
	var ptr_MessageTable = null;
	var ptr_gapfnScSendMessage = null;
	var ptr_gapfnMessageCall = null;
	
	var nMsg = 0;
	
	var fnIndex = 0;
	
	var pRoutineAddress1 = null;
	var strRoutineName1 = null;
	
	var pRoutineAddress2 = null;
	var strRoutineName2 = null;

	
	var strMsgName = '';
	
	do
	{
		ptr_MessageTable = GetSymbolAddress('win32kfull!MessageTable');
		ptr_gapfnScSendMessage = GetSymbolAddress('win32kfull!gapfnScSendMessage');
		ptr_gapfnMessageCall = GetSymbolAddress('win32kfull!gapfnMessageCall');

		printf('===========================\n');
		printf("win32kfull!MessageTable = 0x%p  \n" , ptr_MessageTable );
		printf("win32kfull!gapfnScSendMessage = 0x%p  \n" , ptr_gapfnScSendMessage );
		printf("win32kfull!gapfnMessageCall = 0x%p  \n\n" , ptr_gapfnMessageCall );

		printf('|msg_value|msg_name|gapfn_index|gapfnScSendMessage|gapfnMessageCall\n');
		printf('|----|----|----|----|----\n');
		for ( nMsg = 0; nMsg < 0x400 ; nMsg++ )
		{
			fnIndex = ReadVirtualUChar(ptr_MessageTable , nMsg * 2 );
			pRoutineAddress1 = ReadVirtualPointer(ptr_gapfnScSendMessage , fnIndex * POINTER_SIZE );
			strRoutineName1 = GetAddressSymbol(pRoutineAddress1);

			pRoutineAddress2 = ReadVirtualPointer(ptr_gapfnMessageCall , fnIndex * POINTER_SIZE );
			strRoutineName2 = GetAddressSymbol(pRoutineAddress2);
			
			strMsgName = SYSTEM_MSG_NAME[nMsg];
			
			printf("|0x%03X|%s|0x%02x|%s|%s\n" ,
					nMsg , 
					strMsgName ,
					fnIndex  , 
					strRoutineName1 , 
					strRoutineName2 
			);
		}
		
	}while(false);
	
	return 0;
}


// tagSHAREDINFO
function main(argv)
{
	var nOSVer = 0;
	var stTargetVer = null;
	var gSharedInfo = null;	

	do
	{
		stTargetVer = GetSystemVersion();
		nOSVer = stTargetVer.OSVer;
		KdPrint("[+] Target Version is %s\n" , stTargetVer.strOSVer );
		
		KdPrint("[+] try load win32k.sys\n");
		ReloadModule("win32k.sys");
		if ( nOSVer > OS_10TH1 )
		{
			KdPrint("[+] try load win32kbase.sys\n");
			ReloadModule("win32kbase.sys");
			
			KdPrint("[+] try load win32kfull.sys\n");
			ReloadModule("win32kfull.sys");
		}
		
		Work();
		
	}while(false);
	
	return 0;
}
exports.main = main;


// --------------------------------------------------------------------